//ram的Verilog实现
//b:模块参数，字长，默认为32
//w:模块参数，地址长度，默认为4
//ra:输入，读数据的地址，位宽为w
//rw:输入，写数据的地址，位宽为w
//write:输入，是否写入，1表示写入，0表示保持
//din:输入，要写入的数据，位宽为b
//dout:输出，读出的数据，位宽为b
module ram_reg(ra,rw,write,din,dout);
  parameter b=32;
  parameter w=4;
  input [w-1:0] ra,rw;
  input write;
  input [b-1:0] din;
  output [b-1:0] dout;
  reg [b-1:0] ram [2**w-1:0];
  assign dout=ram[ra];
  always @(*) begin
      if(write==1)
	  ram[wa]=din;
  end
endmodule

